// yangbuyi Copyright (c) https://yby6.com 2023.

!(function (t, e) {
  typeof exports === "object" && typeof module !== "undefined"
    ? (module.exports = e())
    : typeof define === "function" && define.amd
    ? define(e)
    : (t.dayjs = e());
})(this, () => {
  "use strict";

  const t = "millisecond";
  const e = "second";
  const n = "minute";
  const r = "hour";
  const i = "day";
  const s = "week";
  const u = "month";
  const a = "quarter";
  const o = "year";
  const f = "date";
  const h =
    /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[^0-9]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?.?(\d+)?$/;
  const c =
    /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g;
  const d = {
    name: "en",
    weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split(
      "_"
    ),
    months:
      "January_February_March_April_May_June_July_August_September_October_November_December".split(
        "_"
      ),
  };
  const $ = function (t, e, n) {
    const r = String(t);
    return !r || r.length >= e ? t : `${Array(e + 1 - r.length).join(n)}${t}`;
  };
  const l = {
    s: $,
    z(t) {
      const e = -t.utcOffset();
      const n = Math.abs(e);
      const r = Math.floor(n / 60);
      const i = n % 60;
      return `${(e <= 0 ? "+" : "-") + $(r, 2, "0")}:${$(i, 2, "0")}`;
    },
    m: function t(e, n) {
      if (e.date() < n.date()) return -t(n, e);
      const r = 12 * (n.year() - e.year()) + (n.month() - e.month());
      const i = e.clone().add(r, u);
      const s = n - i < 0;
      const a = e.clone().add(r + (s ? -1 : 1), u);
      return +(-(r + (n - i) / (s ? i - a : a - i)) || 0);
    },
    a(t) {
      return t < 0 ? Math.ceil(t) || 0 : Math.floor(t);
    },
    p(h) {
      return (
        {
          M: u,
          y: o,
          w: s,
          d: i,
          D: f,
          h: r,
          m: n,
          s: e,
          ms: t,
          Q: a,
        }[h] ||
        String(h || "")
          .toLowerCase()
          .replace(/s$/, "")
      );
    },
    u(t) {
      return void 0 === t;
    },
  };
  let y = "en";
  const M = {};
  M[y] = d;
  const m = function (t) {
    return t instanceof S;
  };
  const D = function (t, e, n) {
    let r;
    if (!t) return y;
    if (typeof t === "string") M[t] && (r = t), e && ((M[t] = e), (r = t));
    else {
      const i = t.name;
      (M[i] = t), (r = i);
    }
    return !n && r && (y = r), r || (!n && y);
  };
  const v = function (t, e) {
    if (m(t)) return t.clone();
    const n = typeof e === "object" ? e : {};
    return (n.date = t), (n.args = arguments), new S(n);
  };
  const g = l;
  (g.l = D),
    (g.i = m),
    (g.w = function (t, e) {
      return v(t, {
        locale: e.$L,
        utc: e.$u,
        x: e.$x,
        $offset: e.$offset,
      });
    });
  var S = (function () {
    function d(t) {
      (this.$L = D(t.locale, null, !0)), this.parse(t);
    }
    const $ = d.prototype;
    return (
      ($.parse = function (t) {
        (this.$d = (function (t) {
          const e = t.date;
          const n = t.utc;
          if (e === null) return new Date(NaN);
          if (g.u(e)) return new Date();
          if (e instanceof Date) return new Date(e);
          if (typeof e === "string" && !/Z$/i.test(e)) {
            const r = e.match(h);
            if (r) {
              const i = r[2] - 1 || 0;
              const s = (r[7] || "0").substring(0, 3);
              return n
                ? new Date(
                    Date.UTC(
                      r[1],
                      i,
                      r[3] || 1,
                      r[4] || 0,
                      r[5] || 0,
                      r[6] || 0,
                      s
                    )
                  )
                : new Date(
                    r[1],
                    i,
                    r[3] || 1,
                    r[4] || 0,
                    r[5] || 0,
                    r[6] || 0,
                    s
                  );
            }
          }
          return new Date(e);
        })(t)),
          (this.$x = t.x || {}),
          this.init();
      }),
      ($.init = function () {
        const t = this.$d;
        (this.$y = t.getFullYear()),
          (this.$M = t.getMonth()),
          (this.$D = t.getDate()),
          (this.$W = t.getDay()),
          (this.$H = t.getHours()),
          (this.$m = t.getMinutes()),
          (this.$s = t.getSeconds()),
          (this.$ms = t.getMilliseconds());
      }),
      ($.$utils = function () {
        return g;
      }),
      ($.isValid = function () {
        return !(this.$d.toString() === "Invalid Date");
      }),
      ($.isSame = function (t, e) {
        const n = v(t);
        return this.startOf(e) <= n && n <= this.endOf(e);
      }),
      ($.isAfter = function (t, e) {
        return v(t) < this.startOf(e);
      }),
      ($.isBefore = function (t, e) {
        return this.endOf(e) < v(t);
      }),
      ($.$g = function (t, e, n) {
        return g.u(t) ? this[e] : this.set(n, t);
      }),
      ($.unix = function () {
        return Math.floor(this.valueOf() / 1e3);
      }),
      ($.valueOf = function () {
        return this.$d.getTime();
      }),
      ($.startOf = function (t, a) {
        const h = this;
        const c = !!g.u(a) || a;
        const d = g.p(t);
        const $ = function (t, e) {
          const n = g.w(h.$u ? Date.UTC(h.$y, e, t) : new Date(h.$y, e, t), h);
          return c ? n : n.endOf(i);
        };
        const l = function (t, e) {
          return g.w(
            h
              .toDate()
              [t].apply(
                h.toDate("s"),
                (c ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(e)
              ),
            h
          );
        };
        const y = this.$W;
        const M = this.$M;
        const m = this.$D;
        const D = `set${this.$u ? "UTC" : ""}`;
        switch (d) {
          case o:
            return c ? $(1, 0) : $(31, 11);
          case u:
            return c ? $(1, M) : $(0, M + 1);
          case s:
            var v = this.$locale().weekStart || 0;
            var S = (y < v ? y + 7 : y) - v;
            return $(c ? m - S : m + (6 - S), M);
          case i:
          case f:
            return l(`${D}Hours`, 0);
          case r:
            return l(`${D}Minutes`, 1);
          case n:
            return l(`${D}Seconds`, 2);
          case e:
            return l(`${D}Milliseconds`, 3);
          default:
            return this.clone();
        }
      }),
      ($.endOf = function (t) {
        return this.startOf(t, !1);
      }),
      ($.$set = function (s, a) {
        let h;
        const c = g.p(s);
        const d = `set${this.$u ? "UTC" : ""}`;
        const $ = ((h = {}),
        (h[i] = `${d}Date`),
        (h[f] = `${d}Date`),
        (h[u] = `${d}Month`),
        (h[o] = `${d}FullYear`),
        (h[r] = `${d}Hours`),
        (h[n] = `${d}Minutes`),
        (h[e] = `${d}Seconds`),
        (h[t] = `${d}Milliseconds`),
        h)[c];
        const l = c === i ? this.$D + (a - this.$W) : a;
        if (c === u || c === o) {
          const y = this.clone().set(f, 1);
          y.$d[$](l),
            y.init(),
            (this.$d = y.set(f, Math.min(this.$D, y.daysInMonth())).$d);
        } else $ && this.$d[$](l);
        return this.init(), this;
      }),
      ($.set = function (t, e) {
        return this.clone().$set(t, e);
      }),
      ($.get = function (t) {
        return this[g.p(t)]();
      }),
      ($.add = function (t, a) {
        let f;
        const h = this;
        t = Number(t);
        const c = g.p(a);
        const d = function (e) {
          const n = v(h);
          return g.w(n.date(n.date() + Math.round(e * t)), h);
        };
        if (c === u) return this.set(u, this.$M + t);
        if (c === o) return this.set(o, this.$y + t);
        if (c === i) return d(1);
        if (c === s) return d(7);
        const $ =
          ((f = {}), (f[n] = 6e4), (f[r] = 36e5), (f[e] = 1e3), f)[c] || 1;
        const l = this.$d.getTime() + t * $;
        return g.w(l, this);
      }),
      ($.subtract = function (t, e) {
        return this.add(-1 * t, e);
      }),
      ($.format = function (t) {
        const e = this;
        if (!this.isValid()) return "Invalid Date";
        const n = t || "YYYY-MM-DDTHH:mm:ssZ";
        const r = g.z(this);
        const i = this.$locale();
        const s = this.$H;
        const u = this.$m;
        const a = this.$M;
        const o = i.weekdays;
        const f = i.months;
        const h = function (t, r, i, s) {
          return (t && (t[r] || t(e, n))) || i[r].substr(0, s);
        };
        const d = function (t) {
          return g.s(s % 12 || 12, t, "0");
        };
        const $ =
          i.meridiem ||
          function (t, e, n) {
            const r = t < 12 ? "AM" : "PM";
            return n ? r.toLowerCase() : r;
          };
        const l = {
          YY: String(this.$y).slice(-2),
          YYYY: this.$y,
          M: a + 1,
          MM: g.s(a + 1, 2, "0"),
          MMM: h(i.monthsShort, a, f, 3),
          MMMM: h(f, a),
          D: this.$D,
          DD: g.s(this.$D, 2, "0"),
          d: String(this.$W),
          dd: h(i.weekdaysMin, this.$W, o, 2),
          ddd: h(i.weekdaysShort, this.$W, o, 3),
          dddd: o[this.$W],
          H: String(s),
          HH: g.s(s, 2, "0"),
          h: d(1),
          hh: d(2),
          a: $(s, u, !0),
          A: $(s, u, !1),
          m: String(u),
          mm: g.s(u, 2, "0"),
          s: String(this.$s),
          ss: g.s(this.$s, 2, "0"),
          SSS: g.s(this.$ms, 3, "0"),
          Z: r,
        };
        return n.replace(c, (t, e) => e || l[t] || r.replace(":", ""));
      }),
      ($.utcOffset = function () {
        return 15 * -Math.round(this.$d.getTimezoneOffset() / 15);
      }),
      ($.diff = function (t, f, h) {
        let c;
        const d = g.p(f);
        const $ = v(t);
        const l = 6e4 * ($.utcOffset() - this.utcOffset());
        const y = this - $;
        let M = g.m(this, $);
        return (
          (M =
            ((c = {}),
            (c[o] = M / 12),
            (c[u] = M),
            (c[a] = M / 3),
            (c[s] = (y - l) / 6048e5),
            (c[i] = (y - l) / 864e5),
            (c[r] = y / 36e5),
            (c[n] = y / 6e4),
            (c[e] = y / 1e3),
            c)[d] || y),
          h ? M : g.a(M)
        );
      }),
      ($.daysInMonth = function () {
        return this.endOf(u).$D;
      }),
      ($.$locale = function () {
        return M[this.$L];
      }),
      ($.locale = function (t, e) {
        if (!t) return this.$L;
        const n = this.clone();
        const r = D(t, e, !0);
        return r && (n.$L = r), n;
      }),
      ($.clone = function () {
        return g.w(this.$d, this);
      }),
      ($.toDate = function () {
        return new Date(this.valueOf());
      }),
      ($.toJSON = function () {
        return this.isValid() ? this.toISOString() : null;
      }),
      ($.toISOString = function () {
        return this.$d.toISOString();
      }),
      ($.toString = function () {
        return this.$d.toUTCString();
      }),
      d
    );
  })();
  const p = S.prototype;
  return (
    (v.prototype = p),
    [
      ["$ms", t],
      ["$s", e],
      ["$m", n],
      ["$H", r],
      ["$W", i],
      ["$M", u],
      ["$y", o],
      ["$D", f],
    ].forEach((t) => {
      p[t[1]] = function (e) {
        return this.$g(e, t[0], t[1]);
      };
    }),
    (v.extend = function (t, e) {
      return t.$i || (t(e, S, v), (t.$i = !0)), v;
    }),
    (v.locale = D),
    (v.isDayjs = m),
    (v.unix = function (t) {
      return v(1e3 * t);
    }),
    (v.en = M[y]),
    (v.Ls = M),
    (v.p = {}),
    v
  );
});
